#ifndef _MENU_H_
#define _MENU_H_

#include "common_def.h"

// if finished, then return true.
// return false if there are still tasks pending
typedef bool (*MENU_ITEM_HANDLER_T)(void);

typedef struct MENU_ITEM_T
{
  const uint8*        text;
  MENU_ITEM_HANDLER_T handler;
} MENU_ITEM_T;

typedef struct MENU_T
{
  const uint8*        name;
  const MENU_ITEM_T*  items;
} MENU_T;

void menu_show(const MENU_T* menu);
bool menu_handle_input(const MENU_T* menu, const uint8* line);
void prompt_config(void);
bool pass_config(const uint8* line);

#endif
